﻿using System;
using System.Reflection;

namespace WooCoo.ObjectModel.ManagedProperty
{
    /// <summary>
    /// 属性创建工厂接口，
    /// </summary>
    public interface IPropertyInfoFactory
    {
        /// <summary>
        /// 根据托管类的属性名称创建托管属性
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="containingType">托管类类型</param>
        /// <param name="name">属性名</param>
        /// <returns></returns>
        PropertyInfo<T> Create<T>(Type containingType, string name, T defaultValue, string displayName);

        PropertyInfo<T> Create<T>(PropertyInfo property);

    }
}
